1. Field of the Invention
The present invention generally relates to devices communicating via a series bus. The present invention more specifically applies to an I2C bus which uses two respective clock and data bi-directional conductors, the exchanges of which are standardized.
The present invention more specifically relates to the connection of several identical (peripheral) devices on a same series bus to communicate with a central element (for example, a microcontroller).
The present invention more specifically applies to miniaturized systems, for example, cell phones or laptop computers.
2. Discussion of the Related Art
I2C buses are generally used between a master or host circuit and one or several slave or peripheral devices having functions called by the master device.
Due to the twin-wire structure of the I2C bus, the sharing of a same bus, that is, of two conductors connected to two input/output terminals of the master device by several peripherals, is a problem. The peripherals are indeed addressed via the data signal by insertion at the beginning of each frame of the address of the peripheral which is intended to receive the message.
A first known solution is to dedicate a bus to each device. This solution has the disadvantage of requiring multiple terminals on the host device.
A second known solution is to dedicate a specific fixed address to each peripheral, so that it can be selected by the host device. A disadvantage of such a solution is that it precludes any versatility in the peripherals.
A third known solution is to interpose a multiplexer between the host device and the peripherals to allow a sharing of two input/output terminals of the host device by several peripherals connected to individual buses up to the multiplexer. The addition of such a multiplexer becomes more expensive as the number of devices to be shared increases.
A fourth known solution is to provide, at the level of each peripheral, address selection terminals enabling it, by a connection of these terminals to a high or low supply level, to configure its address in a way that can be recognized afterwards by the host device. A disadvantage of this solution is that this requires, on the peripheral side, dedicated address selection terminals. Such a solution is in particular unavailable on low-cost integrated circuits.
A fifth known solution is to provide, on the host device side, a default address to control an address programming on the peripheral side. However, to avoid that two peripherals connected to the bus receive the same configuration instructions, it is necessary to add a separated logic circuit to deactivate (for example, by cutting off its power supply) one of the peripherals while the other one is being configured.